home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 52 / Amiga Format AFCD52 (Issue 136, May 2000).iso / -in_the_mag- / reader_requests / notes / deutsch / violinenschlüssel.file < prev    next >
Text File  |  2000-02-23  |  33KB  |  1,168 lines

  1. /* Unterprogramm für "Noten.pprx" */
  2.  
  3. signal on halt
  4. signal on break_c
  5. signal on break_e
  6. signal on break_d
  7. call ppm_SetStyle(N)
  8. call ppm_SetMagMode(180)
  9. call ppm_UpdateScreen()
  10.  
  11.  
  12. noteneingabe:
  13.     /* Kleinster notenabstand */
  14.     xgrdform = "(1,2,4,8 oder 16)"
  15.     xgrd = ppm_GetForm("Bitte für den kleinsten Notenwert eingeben ...(nichts=ABBRUCH)", 3, xgrdform)
  16.     if xgrd == '' then  exit_msg("Abbruch")
  17.     select
  18.      when xgrd == '1' then xg =0.7
  19.      when xgrd == '2' then xg =1.4
  20.      when xgrd == '4' then xg =2.8
  21.      when xgrd == '8' then xg =5.6
  22.      when xgrd == '16' then xg =11.2
  23.      otherwise noteneingabe()
  24.     end
  25.  
  26.    /* Punktgröße der Noten */
  27.    notepkt = 26
  28.    call ppm_SetJustification(0)
  29.    
  30.    zz = 0   /* Zeilenzähler */
  31.    notex = 2.5
  32.    page = ppm_CurrentPage()
  33.  
  34. pfad:
  35.    do
  36.            choose=ppm_Inform(2,"Auswahl des Notenfiles oder Abbruch ...", "Abbruch","File")
  37.            if choose == 0 then exit_msg("Abbruch")
  38.            eingabe = ppm_GetFileName("Bitte Notenscriptfile wählen ...", "Noten:")
  39.            res = OPEN(notenfile, eingabe, 'R')
  40.            if res == 0 then
  41.              do
  42.                  call ppm_inform(1,"Fehler in der Eingabe, oder File existiert nicht !!!","OK")
  43.                  pfad()
  44.              end
  45.            call ppm_ShowStatus("OK, ich arbeite ...")
  46.            auslesen(notenfile)
  47.     end
  48.  
  49.     /* x-Abstände der Noten zueinander */
  50. auslesen:
  51.         do
  52.           parse arg file
  53.           noten = READCH(file, 4000)
  54.           i=1
  55.           do forever
  56.             nw = word(noten, i)
  57.             nn = word(noten, i+1)
  58.             al = word(noten, i+2)
  59.             if nw == 'P' then nw = 'p'
  60.             if nw == 'D' then nw = 'd'
  61.             if nw == 'L' then nw = 'l'
  62.             if nw == 'T' then nw = 't'
  63.             if nn == 'T' then nn = 't'
  64.             if nw == 'J' then nw = 'j'
  65.             if al == 'A' then al = 'a'
  66.             if nw == 'E' then nw = 'e'
  67.             call auswahl()
  68.             i=i+3
  69.           end
  70.         end
  71.  
  72. auswahl:
  73. do
  74.     select
  75.       when nw == 'j' then do
  76.                           zz = 0   /* Zeilenzähler */
  77.                           notex = 2.5
  78.                           return
  79.                           end
  80.       when nw == 'e' then
  81.         do
  82.             call ppm_ClearStatus()
  83.             exit_msg("Geschafft!")
  84.         end
  85.       when nw=='s' then
  86.           do
  87.           xw = xg/16
  88.           nw='x'
  89.           yv = 0
  90.           end
  91.       when nw=='S' then
  92.           do
  93.           xw = xg/16
  94.           nw='X'
  95.           yv = 0.47
  96.           end
  97.       when nw=='a' then
  98.           do
  99.           xw = xg/8
  100.           nw='e'
  101.           yv = 0
  102.           end
  103.       when nw=='A' then
  104.           do
  105.           xw = xg/8
  106.           nw='E'
  107.           yv = 0.47
  108.           end
  109.       when nw=='v' then
  110.           do
  111.           xw = xg/4
  112.           nw='q'
  113.           yv = 0
  114.           end
  115.       when nw=='V' then
  116.           do
  117.           xw = xg/4
  118.           nw='Q'
  119.           yv = 0.47
  120.           end
  121.       when nw=='h' then
  122.           do
  123.           xw = xg/2
  124.           yv = 0
  125.           end
  126.       when nw=='H' then
  127.           do
  128.           xw = xg/2
  129.           yv = 0.47
  130.           end
  131.       when nw=='g' then
  132.           do
  133.           xw = xg
  134.           nw='w'
  135.           yv = 0
  136.           end
  137.       when nw=='G' then
  138.           do
  139.           xw = xg
  140.           nw='W'
  141.           yv = 0.47
  142.           end
  143.  
  144.      /* Sprung an den Anfang der Zeile */
  145.       when nw == 'left' then
  146.           do
  147.            call ppm_SetPagePosition(0, zz+1)
  148.           end
  149.  
  150.      /* Punkt nach der Note - muß als erstes eingegeben werden falls gewünscht
  151.         den nötigen Freiraum mit "sp" eingeben */
  152.  
  153.       when nw == 'pk' then
  154.           do
  155.             call ppm_SetSize(25)
  156.             box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.26, 0.3, 0.9, 0)
  157.             call ppm_SetSize(20)
  158.             call ppm_TextIntoBox(box#id, 'd')
  159.            select
  160.                when nn == '1' then
  161.                do
  162.                xw = xg
  163.                notex = notex+xw
  164.                end
  165.                when nn == '2' then
  166.                do
  167.                xw = xg/2
  168.                notex = notex+xw
  169.                end
  170.                when nn == '4' then
  171.                do
  172.                xw = xg/4
  173.                notex = notex+xw
  174.                end
  175.                when nn == '8' then
  176.                do
  177.                xw = xg/8
  178.                notex = notex+xw
  179.                end
  180.                when nn == '16' then
  181.                do
  182.                xw  = xg/16
  183.                notex = notex+xw
  184.                end
  185.                when nn == 't' then
  186.                do
  187.                xw  = 0.2
  188.                notex = notex+xw
  189.                end
  190.                when nn == '0' then do
  191.                end
  192.                otherwise
  193.                do
  194.                 call ppm_ClearStatus()
  195.                 exit_msg("Da war ein Fehler")
  196.                end
  197.            end
  198.            if notex >=18.7 then
  199.                do
  200.                  notex = 2.5
  201.                  zz = zz + 4
  202.                end
  203.            return
  204.           end
  205.  
  206.       when nw == 'PK' then
  207.           do
  208.             call ppm_SetSize(25)
  209.             box#id = ppm_CreateBox(notex-xw+0.4, yw+zz+0.25-yv, 0.3, 0.9, 0)
  210.             call ppm_SetSize(20)
  211.             call ppm_TextIntoBox(box#id, 'd')
  212.            select
  213.                when nn == '1' then
  214.                do
  215.                xw = xg
  216.                notex = notex+xw
  217.                end
  218.                when nn == '2' then
  219.                do
  220.                xw = xg/2
  221.                notex = notex+xw
  222.                end
  223.                when nn == '4' then
  224.                do
  225.                xw = xg/4
  226.                notex = notex+xw
  227.                end
  228.                when nn == '8' then
  229.                do
  230.                xw = xg/8
  231.                notex = notex+xw
  232.                end
  233.                when nn == '16' then
  234.                do
  235.                xw  = xg/16
  236.                notex = notex+xw
  237.                end
  238.                when nn == 't' then
  239.                do
  240.                xw  = 0.2
  241.                notex = notex+xw
  242.                end
  243.                when nn == '0' then
  244.                do
  245.                end
  246.                otherwise
  247.                do
  248.                 call ppm_ClearStatus()
  249.                 exit_msg("Da war ein Fehler")
  250.                end
  251.            end
  252.            if notex >=18.7 then
  253.                do
  254.                  notex = 2.5
  255.                  zz = zz + 4
  256.                end
  257.            return
  258.           end
  259.  
  260.       /* Taktstrich */
  261.       when nw == 't' then
  262.           do
  263.            call ppm_SetLineWeight(0.25)
  264.            call ppm_DrawLine(notex, 2+zz, notex, 2.8+zz)
  265.            notex = notex+0.2
  266.            return
  267.           end
  268.  
  269.      /* Pausen */
  270.       when nw == 'p' then
  271.         do
  272. pausenwert:
  273.          /*  wert = ppm_GetForm("1/1 1/2 1/4 1/8 1/16 ...?", 2, "1 , 2, 4, 8, 16") */
  274.            x = notex
  275.            select
  276.                when nn== '0' then do
  277.                                   end
  278.                when nn== '1' then do
  279.  
  280.                    y = 2.28+zz
  281.                    call ppm_SetLineWeight(4)
  282.                    call ppm_DrawLine(x, y, x+0.4, y)
  283.                    call ppm_SetLineWeight(0.25)
  284.                    xw = xg
  285.                    notex = notex+xw
  286.                end
  287.  
  288.                when nn== '2' then do
  289.  
  290.                    y = 2.32+zz
  291.                    call ppm_SetLineWeight(4)
  292.                    call ppm_DrawLine(x, y, x+0.4, y)
  293.                    call ppm_SetLineWeight(0.25)
  294.                    xw = xg/2
  295.                    notex = notex+xw
  296.                end
  297.  
  298.                when nn== '4' then do
  299.  
  300.                    y = 2.07+zz
  301.                    Pbox = ppm_CreateBox(x, y, 0.59, 0.86, 0)
  302.                    boxnm = ppm_DocNextBox(Pbox)
  303.                    call ppm_DeleteContents(boxnm)
  304.                    call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/viertelPause', pause)
  305.                    xw = xg/4
  306.                    notex = notex+xw
  307.                end
  308.  
  309.                when nn== '8' then do
  310.  
  311.                    y = 2.21+zz
  312.                    Pbox = ppm_CreateBox(x, y, 0.27, 0.42, 0)
  313.                    boxnm = ppm_DocNextBox(Pbox)
  314.                    call ppm_DeleteContents(boxnm)
  315.                    call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/achtelPause', pause)
  316.                    xw = xg/8
  317.                    notex = notex+xw
  318.                end
  319.  
  320.                when nn== '16' then do
  321.  
  322.                    y = 2.21+zz
  323.                    Pbox = ppm_CreateBox(x, y, 0.27, 0.42, 0)
  324.                    boxnm = ppm_DocNextBox(Pbox)
  325.                    call ppm_DeleteContents(boxnm)
  326.                    call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/sechzehntelPause', pause)
  327.                    xw = xg/16
  328.                    notex = notex+xw
  329.                end
  330.                otherwise
  331.                do
  332.                 call ppm_ClearStatus()
  333.                 exit_msg("Da war ein Fehler")
  334.                end
  335.            end
  336.            if notex >=18.7 then
  337.                do
  338.                  notex = 2.5
  339.                  zz = zz + 4
  340.                end
  341.           return
  342.         end
  343.  
  344.       when nw == 'l' then
  345.         do
  346.            /* wert = ppm_GetForm("1/1 1/2 1/4 1/8 1/16 ...?", 2, "1 , 2, 4, 8, 16") */
  347.           select
  348.  
  349.            when nn== '1' then
  350.                do
  351.                xw = xg
  352.                notex = notex+xw
  353.                end
  354.            when nn== '2' then
  355.                do
  356.                xw = xg/2
  357.                notex = notex+xw
  358.                end
  359.            when nn== '4' then
  360.                do
  361.                xw = xg/4
  362.                notex = notex+xw
  363.                end
  364.            when nn== '8' then
  365.                do
  366.                xw = xg/8
  367.                notex = notex+xw
  368.                end
  369.            when nn== '16' then
  370.                do
  371.                xw = xg/16
  372.                notex = notex+xw
  373.                end
  374.            when nn == 't' then
  375.                do
  376.                xw  = 0.2
  377.                notex = notex+xw
  378.                end
  379.            when nn == '0' then do
  380.                end
  381.            otherwise
  382.            do
  383.             call ppm_ClearStatus()
  384.             exit_msg("Da war ein Fehler")
  385.            end
  386.           end
  387.            if notex >=18.7 then
  388.                do
  389.                  notex = 2.5
  390.                  zz = zz + 4
  391.                end
  392.           return
  393.         end
  394.       otherwise
  395.       do
  396.        call ppm_ClearStatus()
  397.        exit_msg("Da war ein Fehler!")
  398.       end
  399.     end
  400.  
  401.  
  402.      /* y-Raster der Noten - Notenhälse nach oben (y-Position der Box) */
  403.  
  404.         call ppm_SetLineWeight(0.25)
  405.  
  406.       select
  407.         when nn=='c5'  then
  408.         do
  409.             yw = 0.945
  410.             if al == 'a' then call auflhoch()
  411.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  412.             call ppm_DrawLine(notex, zz+1.6, (notex+0.4), zz+1.6)
  413.         end
  414.  
  415.         when nn=='h4'  then
  416.         do
  417.             yw = 1.045
  418.             if al == 'a' then call auflhoch()
  419.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  420.         end
  421.  
  422.         when nn=='b4'  then
  423.         do
  424.             yw = 1.045
  425.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  426.         end
  427.  
  428.         when nn=='a#4' then
  429.         do
  430.             yw = 1.145
  431.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  432.             call ppm_SetSize(20)
  433.             call ppm_TextIntoBox(box#id, 's')
  434.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  435.         end
  436.  
  437.         when nn=='a4'  then
  438.         do
  439.             yw = 1.145
  440.             if al == 'a' then call auflhoch()
  441.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  442.         end
  443.  
  444.         when nn=='ab4' then
  445.         do
  446.             yw = 1.145
  447.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  448.             call ppm_SetSize(20)
  449.             call ppm_TextIntoBox(box#id, 'f')
  450.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  451.         end
  452.  
  453.         when nn=='g#4' then
  454.         do
  455.             yw = 1.245
  456.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  457.             call ppm_SetSize(20)
  458.             call ppm_TextIntoBox(box#id, 's')
  459.         end
  460.         when nn=='g4'  then
  461.         do
  462.             yw = 1.245
  463.             if al == 'a' then call auflhoch()
  464.         end
  465.         when nn=='gb4' then
  466.         do
  467.             yw = 1.245
  468.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  469.             call ppm_SetSize(20)
  470.             call ppm_TextIntoBox(box#id, 'f')
  471.         end
  472.         when nn=='f#4' then
  473.         do
  474.             yw = 1.345
  475.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  476.             call ppm_SetSize(20)
  477.             call ppm_TextIntoBox(box#id, 's')
  478.         end
  479.         when nn=='f4'  then
  480.         do
  481.             yw = 1.345
  482.             if al == 'a' then call auflhoch()
  483.         end
  484.         when nn=='e#4' then
  485.         do
  486.             yw = 1.445
  487.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  488.             call ppm_SetSize(20)
  489.             call ppm_TextIntoBox(box#id, 's')
  490.         end
  491.         when nn=='e4'  then
  492.         do
  493.             yw = 1.445
  494.             if al == 'a' then call auflhoch()
  495.         end
  496.         when nn=='eb4' then
  497.         do
  498.             yw = 1.445
  499.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  500.             call ppm_SetSize(20)
  501.             call ppm_TextIntoBox(box#id, 'f')
  502.         end
  503.         when nn=='d#4' then
  504.         do
  505.             yw = 1.545
  506.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  507.             call ppm_SetSize(20)
  508.             call ppm_TextIntoBox(box#id, 's')
  509.         end
  510.         when nn=='d4'  then
  511.         do
  512.             yw = 1.545
  513.             if al == 'a' then call auflhoch()
  514.         end
  515.         when nn=='db4' then
  516.         do
  517.             yw = 1.545
  518.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  519.             call ppm_SetSize(20)
  520.             call ppm_TextIntoBox(box#id, 'f')
  521.         end
  522.         when nn=='c#4' then
  523.         do
  524.             yw = 1.645
  525.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  526.             call ppm_SetSize(20)
  527.             call ppm_TextIntoBox(box#id, 's')
  528.         end
  529.         when nn=='c4'  then
  530.         do
  531.             yw = 1.645
  532.             if al == 'a' then call auflhoch()
  533.         end
  534.         when nn=='h3'  then
  535.         do
  536.             yw = 1.745
  537.             if al == 'a' then call auflhoch()
  538.         end
  539.         when nn=='b3'  then
  540.         do
  541.             yw = 1.745
  542.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  543.             call ppm_SetSize(20)
  544.             call ppm_TextIntoBox(box#id, 'f')
  545.         end
  546.         when nn=='a#3' then
  547.         do
  548.             yw = 1.845
  549.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  550.             call ppm_SetSize(20)
  551.             call ppm_TextIntoBox(box#id, 's')
  552.         end
  553.         when nn=='a3'  then
  554.         do
  555.             yw = 1.845
  556.             if al == 'a' then call auflhoch()
  557.         end
  558.         when nn=='ab3' then
  559.         do
  560.             yw = 1.845
  561.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  562.             call ppm_SetSize(20)
  563.             call ppm_TextIntoBox(box#id, 'f')
  564.         end
  565.         when nn=='g#3' then
  566.         do
  567.             yw = 1.945
  568.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  569.             call ppm_SetSize(20)
  570.             call ppm_TextIntoBox(box#id, 's')
  571.         end
  572.         when nn=='g3'  then
  573.         do
  574.             yw = 1.945
  575.             if al == 'a' then call auflhoch()
  576.         end
  577.         when nn=='gb3' then
  578.         do
  579.             yw = 1.945
  580.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  581.             call ppm_SetSize(20)
  582.             call ppm_TextIntoBox(box#id, 'f')
  583.         end
  584.         when nn=='f#3' then
  585.         do
  586.             yw = 2.045
  587.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  588.             call ppm_SetSize(20)
  589.             call ppm_TextIntoBox(box#id, 's')
  590.         end
  591.         when nn=='f3'  then
  592.         do
  593.             yw = 2.045
  594.             if al == 'a' then call auflhoch()
  595.         end
  596.         when nn=='e#3' then
  597.         do
  598.             yw = 2.145
  599.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  600.             call ppm_SetSize(20)
  601.             call ppm_TextIntoBox(box#id, 's')
  602.         end
  603.         when nn=='e3'  then
  604.         do
  605.             yw = 2.145
  606.             if al == 'a' then call auflhoch()
  607.         end
  608.         when nn=='eb3' then
  609.         do
  610.             yw = 2.145
  611.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  612.             call ppm_SetSize(20)
  613.             call ppm_TextIntoBox(box#id, 'f')
  614.         end
  615.         when nn=='d#3' then
  616.         do
  617.             yw = 2.245
  618.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  619.             call ppm_SetSize(20)
  620.             call ppm_TextIntoBox(box#id, 's')
  621.         end
  622.         when nn=='d3'  then
  623.         do
  624.             yw = 2.245
  625.             if al == 'a' then call auflhoch()
  626.         end
  627.         when nn=='db3' then
  628.         do
  629.             yw = 2.245
  630.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  631.             call ppm_SetSize(20)
  632.             call ppm_TextIntoBox(box#id, 'f')
  633.         end
  634.  
  635.         when nn=='c#3' then
  636.         do
  637.             yw = 2.345
  638.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  639.             call ppm_SetSize(20)
  640.             call ppm_TextIntoBox(box#id, 's')
  641.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  642.         end
  643.  
  644.         when nn=='c3'  then
  645.         do
  646.             yw = 2.345
  647.             if al == 'a' then call auflhoch()
  648.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  649.         end
  650.  
  651.         when nn=='h2'  then
  652.         do
  653.             yw = 2.445
  654.             if al == 'a' then call auflhoch()
  655.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  656.         end
  657.  
  658.         when nn=='b2'  then
  659.         do
  660.             yw = 2.445
  661.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  662.             call ppm_SetSize(20)
  663.             call ppm_TextIntoBox(box#id, 'f')
  664.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  665.         end
  666.  
  667.         when nn=='a#2' then
  668.         do
  669.             yw = 2.545
  670.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  671.             call ppm_SetSize(20)
  672.             call ppm_TextIntoBox(box#id, 's')
  673.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  674.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  675.         end
  676.  
  677.         when nn=='a2'  then
  678.         do
  679.             yw = 2.545
  680.             if al == 'a' then call auflhoch()
  681.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  682.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  683.         end
  684.  
  685.         when nn=='ab2'  then
  686.         do
  687.             yw = 2.545
  688.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  689.             call ppm_SetSize(20)
  690.             call ppm_TextIntoBox(box#id, 'f')
  691.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  692.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  693.         end
  694.  
  695.         when nn=='g#2'  then
  696.         do
  697.             yw = 2.645
  698.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  699.             call ppm_SetSize(20)
  700.             call ppm_TextIntoBox(box#id, 's')
  701.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  702.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  703.         end
  704.  
  705.         when nn=='g2'  then
  706.         do
  707.             yw = 2.645
  708.             if al == 'a' then call auflhoch()
  709.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  710.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  711.         end
  712.  
  713.  
  714.         when nn=='gb2'  then
  715.         do
  716.             yw = 2.645
  717.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.21, 0.35, 0.75, 0)
  718.             call ppm_SetSize(20)
  719.             call ppm_TextIntoBox(box#id, 'f')
  720.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  721.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  722.         end
  723.  
  724.         when nn=='f#2'  then
  725.         do
  726.             yw = 2.745
  727.             box#id = ppm_CreateBox(notex-0.23, yw+zz+0.32, 0.35, 0.75, 0)
  728.             call ppm_SetSize(20)
  729.             call ppm_TextIntoBox(box#id, 's')
  730.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  731.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  732.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  733.         end
  734.  
  735.         when nn=='f2'  then
  736.         do
  737.             yw = 2.745
  738.             if al == 'a' then call auflhoch()
  739.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  740.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  741.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  742.         end
  743.  
  744.         when nn=='e2'  then
  745.         do
  746.             yw = 2.845
  747.             if al == 'a' then call auflhoch()
  748.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  749.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  750.             call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  751.         end
  752.  
  753.  
  754.     /* y-Raster der Noten - Notenhälse nach unten */
  755.  
  756.         when nn=='C5'  then
  757.         do
  758.             yw = 1.42
  759.             if al == 'a' then call aufltief()
  760.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  761.             call ppm_DrawLine(notex, zz+1.6, (notex+0.4), zz+1.6)
  762.         end
  763.  
  764.         when nn=='H4'  then
  765.         do
  766.             yw = 1.52
  767.             if al == 'a' then call aufltief()
  768.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  769.         end
  770.  
  771.         when nn=='B4'  then
  772.         do
  773.             yw = 1.52
  774.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  775.             call ppm_SetSize(20)
  776.             call ppm_TextIntoBox(box#id, 'f')
  777.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  778.         end
  779.  
  780.         when nn=='A#4' then
  781.         do
  782.             yw = 1.62
  783.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  784.             call ppm_SetSize(20)
  785.             call ppm_TextIntoBox(box#id, 's')
  786.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  787.         end
  788.  
  789.         when nn=='A4'  then
  790.         do
  791.             yw = 1.62
  792.             if al == 'a' then call aufltief()
  793.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  794.         end
  795.  
  796.         when nn=='Ab4' then
  797.         do
  798.             yw = 1.62
  799.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  800.             call ppm_SetSize(20)
  801.             call ppm_TextIntoBox(box#id, 'f')
  802.             call ppm_DrawLine(notex, zz+1.8, (notex+0.4), zz+1.8)
  803.         end
  804.  
  805.         when nn=='G#4' then
  806.         do
  807.             yw = 1.72
  808.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  809.             call ppm_SetSize(20)
  810.             call ppm_TextIntoBox(box#id, 's')
  811.         end
  812.         when nn=='G4'  then
  813.         do
  814.             yw = 1.72
  815.             if al == 'a' then call aufltief()
  816.         end
  817.         when nn=='Gb4' then
  818.         do
  819.             yw = 1.72
  820.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  821.             call ppm_SetSize(20)
  822.             call ppm_TextIntoBox(box#id, 'f')
  823.         end
  824.         when nn=='F#4' then
  825.         do
  826.             yw = 1.82
  827.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  828.             call ppm_SetSize(20)
  829.             call ppm_TextIntoBox(box#id, 's')
  830.         end
  831.         when nn=='F4'  then
  832.         do
  833.             yw = 1.82
  834.             if al == 'a' then call aufltief()
  835.         end
  836.         when nn=='E#4' then
  837.         do
  838.             yw = 1.92
  839.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  840.             call ppm_SetSize(20)
  841.             call ppm_TextIntoBox(box#id, 's')
  842.         end
  843.         when nn=='E4'  then
  844.         do
  845.             yw = 1.92
  846.             if al == 'a' then call aufltief()
  847.         end
  848.         when nn=='Eb4' then
  849.         do
  850.             yw = 1.92
  851.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  852.             call ppm_SetSize(20)
  853.             call ppm_TextIntoBox(box#id, 'f')
  854.         end
  855.         when nn=='D#4' then
  856.         do
  857.             yw = 2.02
  858.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  859.             call ppm_SetSize(20)
  860.             call ppm_TextIntoBox(box#id, 's')
  861.         end
  862.         when nn=='D4'  then
  863.         do
  864.             yw = 2.02
  865.             if al == 'a' then call aufltief()
  866.         end
  867.         when nn=='Db4' then
  868.         do
  869.             yw = 2.02
  870.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  871.             call ppm_SetSize(20)
  872.             call ppm_TextIntoBox(box#id, 'f')
  873.         end
  874.         when nn=='C#4' then
  875.         do
  876.             yw = 2.12
  877.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  878.             call ppm_SetSize(20)
  879.             call ppm_TextIntoBox(box#id, 's')
  880.         end
  881.         when nn=='C4'  then
  882.         do
  883.             yw = 2.12
  884.             if al == 'a' then call aufltief()
  885.         end
  886.         when nn=='H3'  then
  887.         do
  888.             yw = 2.22
  889.             if al == 'a' then call aufltief()
  890.         end
  891.         when nn=='B3'  then
  892.         do
  893.             yw = 2.22
  894.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  895.             call ppm_SetSize(20)
  896.             call ppm_TextIntoBox(box#id, 'f')
  897.         end
  898.         when nn=='A#3' then
  899.         do
  900.             yw = 2.32
  901.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  902.             call ppm_SetSize(20)
  903.             call ppm_TextIntoBox(box#id, 's')
  904.         end
  905.         when nn=='A3'  then
  906.         do
  907.             yw = 2.32
  908.             if al == 'a' then call aufltief()
  909.         end
  910.         when nn=='Ab3' then
  911.         do
  912.             yw = 2.32
  913.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  914.             call ppm_SetSize(20)
  915.             call ppm_TextIntoBox(box#id, 'f')
  916.         end
  917.         when nn=='G#3' then
  918.         do
  919.             yw = 2.42
  920.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  921.             call ppm_SetSize(20)
  922.             call ppm_TextIntoBox(box#id, 's')
  923.         end
  924.         when nn=='G3'  then
  925.         do
  926.             yw = 2.42
  927.             if al == 'a' then call aufltief()
  928.         end
  929.         when nn=='Gb3' then
  930.         do
  931.             yw = 2.42
  932.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  933.             call ppm_SetSize(20)
  934.             call ppm_TextIntoBox(box#id, 'f')
  935.         end
  936.         when nn=='F#3' then
  937.         do
  938.             yw = 2.52
  939.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  940.             call ppm_SetSize(20)
  941.             call ppm_TextIntoBox(box#id, 's')
  942.         end
  943.         when nn=='F3'  then
  944.         do
  945.             yw = 2.52
  946.             if al == 'a' then call aufltief()
  947.         end
  948.         when nn=='E#3' then
  949.         do
  950.             yw = 2.62
  951.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  952.             call ppm_SetSize(20)
  953.             call ppm_TextIntoBox(box#id, 's')
  954.         end
  955.         when nn=='E3'  then
  956.         do
  957.             yw = 2.62
  958.             if al == 'a' then call aufltief()
  959.         end
  960.         when nn=='Eb3' then
  961.         do
  962.             yw = 2.62
  963.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  964.             call ppm_SetSize(20)
  965.             call ppm_TextIntoBox(box#id, 'f')
  966.         end
  967.         when nn=='D#3' then
  968.         do
  969.             yw = 2.72
  970.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  971.             call ppm_SetSize(20)
  972.             call ppm_TextIntoBox(box#id, 's')
  973.         end
  974.         when nn=='D3'  then
  975.         do
  976.             yw = 2.72
  977.             if al == 'a' then call aufltief()
  978.         end
  979.         when nn=='Db3' then
  980.         do
  981.             yw = 2.72
  982.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  983.             call ppm_SetSize(20)
  984.             call ppm_TextIntoBox(box#id, 'f')
  985.         end
  986.  
  987.         when nn=='C#3' then
  988.         do
  989.             yw = 2.82
  990.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  991.             call ppm_SetSize(20)
  992.             call ppm_TextIntoBox(box#id, 's')
  993.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  994.         end
  995.  
  996.         when nn=='C3'  then
  997.         do
  998.             yw = 2.82
  999.             if al == 'a' then call aufltief()
  1000.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1001.         end
  1002.  
  1003.         when nn=='H2'  then
  1004.         do
  1005.             yw = 2.92
  1006.             if al == 'a' then call aufltief()
  1007.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1008.         end
  1009.  
  1010.         when nn=='B2'  then
  1011.         do
  1012.             yw = 2.92
  1013.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  1014.             call ppm_SetSize(20)
  1015.             call ppm_TextIntoBox(box#id, 'f')
  1016.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1017.         end
  1018.  
  1019.         when nn=='A#2' then
  1020.         do
  1021.             yw = 3.02
  1022.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  1023.             call ppm_SetSize(20)
  1024.             call ppm_TextIntoBox(box#id, 's')
  1025.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1026.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1027.         end
  1028.  
  1029.         when nn=='A2'  then
  1030.         do
  1031.           yw = 3.02
  1032.             if al == 'a' then call aufltief()
  1033.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1034.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1035.         end
  1036.  
  1037.         when nn=='Ab2'  then
  1038.         do
  1039.           yw = 3.02
  1040.           box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  1041.           call ppm_SetSize(20)
  1042.           call ppm_TextIntoBox(box#id, 'f')
  1043.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1044.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1045.         end
  1046.  
  1047.         when nn=='G#2'  then
  1048.         do
  1049.             yw = 3.12
  1050.             box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  1051.             call ppm_SetSize(20)
  1052.             call ppm_TextIntoBox(box#id, 's')
  1053.             call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1054.             call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1055.         end
  1056.  
  1057.         when nn=='G2'  then
  1058.         do
  1059.           yw = 3.12
  1060.             if al == 'a' then call aufltief()
  1061.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1062.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1063.         end
  1064.  
  1065.         when nn=='Gb2'  then
  1066.         do
  1067.           yw = 3.12
  1068.           box#id = ppm_CreateBox(notex-0.23, yw+zz-0.27, 0.35, 0.75, 0)
  1069.           call ppm_SetSize(20)
  1070.           call ppm_TextIntoBox(box#id, 'f')
  1071.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1072.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1073.         end
  1074.  
  1075.         when nn=='F#2'  then
  1076.         do
  1077.           yw = 3.22
  1078.           box#id = ppm_CreateBox(notex-0.23, yw+zz-0.15, 0.35, 0.75, 0)
  1079.           call ppm_SetSize(20)
  1080.           call ppm_TextIntoBox(box#id, 's')
  1081.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1082.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1083.           call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  1084.         end
  1085.  
  1086.         when nn=='F2'  then
  1087.         do
  1088.           yw = 3.22
  1089.             if al == 'a' then call aufltief()
  1090.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1091.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1092.           call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  1093.         end
  1094.  
  1095.         when nn=='E2'  then
  1096.         do
  1097.           yw = 3.32
  1098.             if al == 'a' then call aufltief()
  1099.           call ppm_DrawLine(notex, zz+3, (notex+0.4), zz+3)
  1100.           call ppm_DrawLine(notex, zz+3.2, (notex+0.4), zz+3.2)
  1101.           call ppm_DrawLine(notex, zz+3.4, (notex+0.4), zz+3.4)
  1102.         end
  1103.         otherwise
  1104.         do
  1105.          ppm_ClearStatus()
  1106.          exit_msg("Da war ein Fehler!")
  1107.         end
  1108.       end
  1109.  
  1110.  
  1111.         /* größe einer Notenbox */
  1112.           notewidht = 0.64
  1113.           noteheight = 0.97
  1114.  
  1115.  
  1116.           boxid = ppm_CreateBox(notex, yw+zz, notewidht, noteheight, 0)
  1117.           call ppm_SetSize(notepkt)
  1118.           call ppm_TextIntoBox(boxid, nw)
  1119.           notex = (notex + xw)
  1120.           if notex >=18.7 then
  1121.               do
  1122.                 notex = 2.5
  1123.                 zz = zz + 4
  1124.               end
  1125.     return
  1126. end
  1127. exit
  1128.  
  1129. auflhoch:
  1130. do
  1131.   Pbox = ppm_CreateBox(notex-0.34, yw+zz+0.07, 0.6, 1.2, 0)
  1132.   boxnm = ppm_DocNextBox(Pbox)
  1133.   call ppm_DeleteContents(boxnm)
  1134.   call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/Auflsng', Zeichen)
  1135.   return
  1136. end
  1137.  
  1138. aufltief:
  1139. do
  1140.   Pbox = ppm_CreateBox(notex-0.34, yw+zz-0.4, 0.6, 1.2, 0)
  1141.   boxnm = ppm_DocNextBox(Pbox)
  1142.   call ppm_DeleteContents(boxnm)
  1143.   call ppm_ImportGraphic(boxnm, 'Genies:noten_pausen/Auflsng', Zeichen)
  1144.   return
  1145. end
  1146.  
  1147. break_d:
  1148. break_e:
  1149. break_c:
  1150. halt:
  1151.     call exit_msg("User aborted Genie!")
  1152.  
  1153.  
  1154. exit_msg: procedure
  1155. do
  1156.     parse arg message
  1157.  
  1158.     if message ~= '' then
  1159.     call ppm_Inform(1,message,)
  1160.  
  1161.     call ppm_ClearStatus()
  1162.     call ppm_AutoUpdate(1)
  1163.     exit
  1164. end
  1165.  
  1166.  
  1167.